package com.example.demo.service.impl;

import com.example.demo.form.PayForm;
import com.example.demo.handler.PayWayHandlerContext;
import com.example.demo.service.PayService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @author Csea
 * @title
 * @date 2020/1/17 11:15
 */
@Service
public class PayServiceImpl implements PayService {
    @Autowired
    private PayWayHandlerContext payWayHandlerContext;

    @Override
    public String pay(PayForm payForm) {
        // 如果是传统方式就是
//        if (payForm.getPayWay().equals("ALIPAY")) {
//            // 业务
//        } else if (payForm.getPayWay().equals("WX")) {
//            // 业务
//        } else if (payForm.getPayWay().equals("UNION")) {
//            // 业务
//        } else {
//            throw new RuntimeException("不支持该种支付方式");
//        }

        // 策略模式
        return payWayHandlerContext.getHandlerInstance(payForm.getPayWay()).handler(payForm);
    }
}
